#include<iostream>
#include<string>
using namespace std;
template<class T>
class Base
{
public:
	Base()
	{
		m_A = 10;
	}
	T m_A;
};
//������̳еĸ�����һ����ģ��ʱ,
//������������ʱ��,Ҫָ����������T������
class Son:public Base<int>//��������֪�����������ٿռ�
{
public:
                                            
	Son()
	{
		m_A = 20;
	}
	
};


void test01()
{
	Son p;
	cout << p.m_A << endl;
}

template<class T1, class T2>
class Son2 :public Base<T2>
{
public:
	Son2()
	{
		cout << "T1���������ͣ�" << typeid(T1).name() << endl;
		cout << "T2���������ͣ�" << typeid(T2).name() << endl;
	}
	T1 obj;
};
void test02()
{
	Son2<int, char >a;
	a.obj;
	a.m_A;
}
int main()
{
	test01();
	test02();
	system("pause");
	
	return 0;
}